#ifndef PLAYER_H
#define PLAYER_H
#include <QObject>
#include <vector>

#include "card.h"
#include "cardmanager.h"
using namespace std;
class player : public QObject {
  Q_OBJECT
 public:
  player(int type);
  int getHp();
  int getMp();
  int getExtraPower();
  int getShield();
  int getExp();
  int getLevel();
  int getIsAct();
  int getPlayerTyep();
  int getMoney();
  int getMaxHp();
  int getMaxMp();

  void addMaxHp(int a);
  void addMaxMp(int a);
  void addMoney(int a);
  void setHp(int a);
  void setMp(int a);
  void addExtraPower(int a);
  void setShield(int a);
  void calcuShield();  // 计算剩余护盾数
  void setExp(int a);
  void setLevel(int a);
  void setIsAct(int a);
  void getSpeShiheld(int a);  // 获得持续两回合的护盾
  void clearbuff();
  void addbuff(int a, int b);
  int getbuff(int a);
  int cardNumber;  //
  int drawNumber;  //
  int killNum;     // 杀敌数量
  QString playerName;

  CardManager *manager;

  int getHBD();

  void setHpBeforeDefeat(int value);

 signals:
  void hurtNumber(int a);

 private:
  int playerType;

  int Hp;  // 玩家当前血量
  int HpBeforeDefeat;
  int Mp;          // 能量
  int maxHp;       // 最大生命值
  int maxMp;       // 最大蓝量
  int extraPower;  // 额外增伤
  int shield;      // 护盾
  int keepShield;
  int money;         // 金钱
  int exp;           // 经验
  int level;         // 等级
  int isAct;         // 是否可以行动
  vector<int> buff;  // buff栏 1力量 2敏捷 3虚弱 4易伤 5暴走 6死亡
};

#endif  // PLAYER_H
